<?php

/**
 * VehiculoUsuario form.
 *
 * @package    toyomotor
 * @subpackage form
 * @author     Your name here
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class VehiculoUsuarioForm extends BaseVehiculoUsuarioForm
{
  public function configure()
  {
      $this->widgetSchema['id_usuario'] = new sfWidgetFormInputHidden();
      //unset($this['colores_list']);
  }

  // Al crear un vehiculo llena por defecto el id del usuario
  public function llenar_usuario($id_usuario)
  {
      $this->setDefault('id_usuario',$id_usuario);
      
      unset($this['id_ano_modelo']);
      
      
      /* Ing. Roberto Hernández De La Luz
       * Codigo agregado para separar el modelo/año*/
      
        $this->widgetSchema['anio'] = new sfWidgetFormArrayDependentSelect(array(
            'callable' => array('ModelosAnios', 'getAnios'),
        ));

        $this->widgetSchema['modelo'] = new sfWidgetFormArrayDependentSelect(array(
            'callable' => array('ModelosAnios', 'getModelos'),
            'depends' => 'anio',
        ));    
        
        $this->widgetSchema['anio']->setLabel('Año');
        $this->widgetSchema['modelo']->setLabel('Modelo');

        $this->widgetSchema->moveField('modelo', 'after', 'anio');
        
        
        $this->validatorSchema['kilometraje'] = new sfValidatorInteger(array(), array('required' => 'Campo Obligatorio', 'invalid' => '"%value%" no es un numero.'));
        $this->validatorSchema['placa'] = new sfValidatorString(array('min_length' => 5), array('required' => 'Campo Obligatorio', 'min_length' => 'Su Placa debe ser de al menos 5 caracteres'));
        
        $clavesanios = array_keys(ModelosAnios::getAnios());
        
        //Se debe obtener todos los id de la tabla año_modelo
        $temp = array();
        
        $aniomodelos = Doctrine_Core::getTable('AnoModelo')
                ->createQuery('a')
                ->execute();
        
        foreach($aniomodelos as $aniomodelo):
            $temp[$aniomodelo->getIdAnoModelo()] = $aniomodelo->getIdAnoModelo();
        endforeach;
        
        $clavesidmodelosanios = $temp;
        
        $this->validatorSchema['anio'] = new sfValidatorChoice(array('choices' => $clavesanios), array('required' => 'Campo Obligatorio', 'invalid' => 'No valido'));
        $this->validatorSchema['modelo'] = new sfValidatorChoice(array('choices' => $clavesidmodelosanios), array('required' => 'Campo Obligatorio', 'invalid' => 'No valido'));
        
  } 
  
  // Se deben recuperar correctamente los valores para poder editar el vehiculo es decir por defecto deben aparecer correctamente ambos select...
  public function editando($idanio, $idaniomodelo)
  {      
      unset($this['id_ano_modelo']);
      
      
      /* Ing. Roberto Hernández De La Luz
       * Codigo agregado para separar el modelo/año*/
      
        $this->widgetSchema['anio'] = new sfWidgetFormArrayDependentSelect(array(
            'callable' => array('ModelosAnios', 'getAnios'),
            'default' => $idanio
        ));

        $this->widgetSchema['modelo'] = new sfWidgetFormArrayDependentSelect(array(
            'callable' => array('ModelosAnios', 'getModelos'),
            'depends' => 'anio',
            'default' => $idaniomodelo
        ));    
        
        $this->widgetSchema['anio']->setLabel('Año');
        $this->widgetSchema['modelo']->setLabel('Modelo');

        $this->widgetSchema->moveField('modelo', 'after', 'anio');
        
        
        $this->validatorSchema['kilometraje'] = new sfValidatorInteger(array(), array('required' => 'Campo Obligatorio', 'invalid' => '"%value%" no es un numero.'));
        $this->validatorSchema['placa'] = new sfValidatorString(array('min_length' => 5), array('required' => 'Campo Obligatorio', 'min_length' => 'Su Placa debe ser de al menos 5 caracteres'));
        
        $clavesanios = array_keys(ModelosAnios::getAnios());
        
        //Se debe obtener todos los id de la tabla año_modelo
        $temp = array();
        
        $aniomodelos = Doctrine_Core::getTable('AnoModelo')
                ->createQuery('a')
                ->execute();
        
        foreach($aniomodelos as $aniomodelo):
            $temp[$aniomodelo->getIdAnoModelo()] = $aniomodelo->getIdAnoModelo();
        endforeach;
        
        $clavesidmodelosanios = $temp;
        
        $this->validatorSchema['anio'] = new sfValidatorChoice(array('choices' => $clavesanios), array('required' => 'Campo Obligatorio', 'invalid' => 'No valido'));
        $this->validatorSchema['modelo'] = new sfValidatorChoice(array('choices' => $clavesidmodelosanios), array('required' => 'Campo Obligatorio', 'invalid' => 'No valido'));
        
  } 
}
